package recursion;
/*
* 求一个数的阶乘
* 0!=1
* 1!=1
* 2!=2*1=2
* 3!=3*2*1=6
* 4!=4*3*2*1=24
*/
public class Demo02 {
    public static void main(String[] args) {
        System.out.println(getFactorial(4));
    }

    public static int getFactorial2(int n){
        /*
        * 0!=0
        * 1!=1
        *
        * 2!=2*1 = 2*1!
        * 3!=3*2*1 = 3*2!
        * ...
        * n!=n*(n-1)!
        * */
        if(n==0 || n==1){
            return 1;
        }
        return n*getFactorial2(n-1);
    }








    public static int getFactorial(int n){
        /*//n!=1*2*3*..*n

        int sum=1;
        for(int i=1;i<=n;i++){
            sum*=i;
        }
        return sum;*/

        // n!=n*(n-1)*(n-2)*...*1
        int sum = 1;
        for(int i=n;i>1;i--){
            sum*=i;
        }
        return sum;
    }
}
